#include <REGX52.H>
#include <stdio.h>
#include "Delay.h"

unsigned char Key_GetState();//私有函数声明
	
unsigned char Key_KeyNum = 0;

/**
   *  @brief  返回独立按键键码
   *  @param  无
   *  @retval 无
   */
unsigned char Key()
{
	unsigned char Temp=0;
	Temp = Key_KeyNum;
	Key_KeyNum = 0;
	return Temp;
}

/**
   *  @brief  返回独立按键瞬时键码
   *  @param  无
   *  @retval KeyNum 一个字节 键码
   */
unsigned char Key_GetState()
{
	unsigned char KeyNum = 0;
	if(P3_1==0){KeyNum=1;}
	if(P3_0==0){KeyNum=2;}
	if(P3_2==0){KeyNum=3;}
	if(P3_3==0){KeyNum=4;}
	return KeyNum;
}

/**
   *  @brief  记时器搭配的按键检测法，循环检测，记录瞬时变化时的值
   *  @param  无
   *  @retval 无
   */
void Key_Loop()
{
	static unsigned char LastState,NowState;
	LastState = NowState;
	NowState = Key_GetState();
	if(LastState==1 && NowState==0)
		Key_KeyNum=1;
	if(LastState==2 && NowState==0)
		Key_KeyNum=2;
	if(LastState==3 && NowState==0)
		Key_KeyNum=3;
	if(LastState==4 && NowState==0)
		Key_KeyNum=4;
}